package com.ruoyi.system.domain.dto;

import com.ruoyi.common.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;

@Data
@Schema(description = "设备心跳包")
public class DeviceHeartbeatRequestDTO {
     // 设备信息
    @NotBlank(message = "设备SN不能为空")
    @Schema(description = "设备SN")
    private String devSN;
    @Schema(description = "设备部件号")
    private  String  devPartNum;








    /**
     * 操作系统版本
     */
    @Excel(name = "操作系统版本")
    @Schema(description = "操作系统版本")
    private String osVer;

    /**
     * 存储总容量(GB)
     */
    @Excel(name = "存储总容量(GB)")
    @Schema(description = "存储总容量(GB)")
    private BigDecimal romTotal;

    /**
     * 可用存储容量(GB)
     */
    @Excel(name = "可用存储容量(GB)")
    @Schema(description = "可用存储容量(GB)")
    private BigDecimal romFree;

    /**
     * 设备型号
     */
    @Excel(name = "设备型号")
    @Schema(description = "设备型号")
    private String devModel;

    /**
     * CPU信息
     */
    @Excel(name = "CPU信息")
    @Schema(description = "CPU信息")
    private String cpuInfo;

    /**
     * 内存总量(GB)
     */
    @Excel(name = "内存总量(GB)")
    @Schema(description = "内存总量(GB)")
    private BigDecimal memoryTotal;

    /**
     * 电池健康度(百分比)
     */
    @Excel(name = "电池健康度(百分比)")
    @Schema(description = "电池健康度(百分比)")
    private BigDecimal batteryHealth;


    /**
     * 硬件版本
     */
    @Excel(name = "硬件版本")
    @Schema(description = "硬件版本")
    private String hardwareVersion;

    /**
     * 累计开机时间(h)
     */
    @Excel(name = "累计开机时间(h)")
    @Schema(description = "累计开机时间(h)")
    private BigDecimal powerOnHours;

    /**
     * 累计开机次数
     */
    @Excel(name = "累计开机次数")
    @Schema(description = "累计开机次数")
    private Integer powerOnCount;

    /**
     * 可用内存(GB)
     */
    @Excel(name = "可用内存(GB)")
    @Schema(description = "可用内存(GB)")
    private BigDecimal memoryFree;

    /**
     * CPU温度(℃)
     */
    @Excel(name = "CPU温度(℃)")
    @Schema(description = "CPU温度(℃)")
    private BigDecimal cpuTemp;

    /**
     * 屏幕温度(℃)
     */
    @Excel(name = "屏幕温度(℃)")
    @Schema(description = "屏幕温度(℃)")
    private BigDecimal screenTemp;

    /**
     * 风扇转速(rpm)
     */
    @Excel(name = "风扇转速(rpm)")
    @Schema(description = "风扇转速(rpm)")
    private BigDecimal fanSpeed;

    /**
     * 主板温度(℃)
     */
    @Excel(name = "主板温度(℃)")
    @Schema(description = "主板温度(℃)")
    private BigDecimal motherboardTemp;

    /**
     * 设备连接状态
     */
    @Excel(name = "设备连接状态")
    @Schema(description = "设备连接状态")
    private Integer connectionStatus;

    /**
     * 当前执行任务
     */
    @Excel(name = "当前执行任务")
    @Schema(description = "当前执行任务")
    private Integer currentTask;

    /**
     * 最后升级状态
     */
    @Excel(name = "最后升级状态")
    @Schema(description = "最后升级状态")
    private Integer lastUpgradeStatus;


    /**
     * 累计加电时间
     */
    @Excel(name = "累计加电时间")
    @Schema(description = "累计加电时间")
    private Double powerOnTime;


    /**
     * usb状态
     */
    @Excel(name = "usb状态")
    @Schema(description = "usb状态")
    private Integer usbState;

    /**
     * lcm温度
     */
    @Excel(name = "lcm温度")
    @Schema(description = "lcm温度")
    private Double lcmTemperature;

    /**
     * pcb温度
     */
    @Excel(name = "pcb温度")
    @Schema(description = "pcb温度")
    private Double pcbTemperature;

    /**
     * cpu温度
     */
    @Excel(name = "cpu温度")
    @Schema(description = "cpu温度")
    private Double cpuTemperature;

    /**
     * 内存使用率
     */
    @Excel(name = "内存使用率")
    @Schema(description = "内存使用率")
    private Double memUsage;

    /**
     * 存储空间使用率
     */
    @Excel(name = "存储空间使用率")
    @Schema(description = "存储空间使用率")
    private Double storageUsage;

    /**
     * cpu 使用率
     */
    @Excel(name = "cpu 使用率")
    @Schema(description = "cpu 使用率")
    private Double cpuUasge;
}
